Översikt

Med Microsofts ODBC-drivrutin för Oracle kan du ansluta ODBC-kompatibla program till en Oracle-databas. Den här drivrutinsversionen ger ökad prestanda och innehåller fler kontrollfunktioner, t ex PL/SQL-paket och XA/DTC-integrering, samt ger tillgång till Oracle från Internet Information Server (IIS). Drivrutinen följer den specifikation för ODBC (Open Database Connectivity) som beskrivs i ODBC Programmer's Reference för den plattform som du använder.

Information om hur du installerar, konfigurerar och använder drivrutinen finns i följande avsnitt:

•	Systemkrav

•	Lägga till och ändra datakälla med hjälp av installationsprogrammet

•	Konfigurera ODBC-drivrutinen för Oracle

•	Ansluta till en datakälla

•	Attribut för anslutningssträng

•	Anpassningsnivåer för ODBC

•	Anpassningsnivåer för SQL

•	Mappa datatyper

•	Använda Microsoft Transaction Server

•	Använda Microsoft Internet Information Server

•	Använda operativsystemsverifiering

•	Begränsningar vid användning av Keyset-drivna markörer

•	Returnera matrisparametrar från lagrade procedurer (Stored Procedures)

•	Kommentarer om API-funktioner

•	Kommentarer om trådhantering i API-funktioner

•	API-funktioner på grundnivå

•	API-funktioner på nivå 1

•	API-funktioner på nivå 2

•	Anslutningsalternativ

•	Uttrycksalternativ

•	Markörtyp och samtidighetskombinationer

•	Felmeddelanden


Systemkrav

Om du vill använda Microsoft ODBC-drivrutinen för Oracle måste du ha installerat Microsoft Windows 95/98 eller Microsoft Windows NT och programvaran för Oracle-klient version 7.3 eller senare. Microsoft ODBC-drivrutinen för Oracle stöder endast SQL*Net 2.3 eller senare versioner. Mer information om Oracle-produkter finns i Oracle-dokumentationen.


Lägga till och ändra datakällor med hjälp av installationsprogrammet

En datakälla anger sökvägen till de data som du vill ansluta, t ex nätverksbibliotek, server, databas och andra attribut. I det här fallet är datakällan sökvägen till en Oracle-databas. När datakällan ansluts kontrollerar drivrutinshanteraren om det finns specifik anslutningsinformation i Windows-registret.

ODBC-drivrutiner och drivrutinshanteraren för ODBC använder den registerpost som har skapats via ODBC - Administrera datakälla. Posten innehåller information om datakällan och den drivrutin som har associerats till den. Anslutningsinformationen måste alltså läggas till i registret innan du kan ansluta till datakällan.

När du vill lägga till och konfigurera datakällor öppnar du ODBC-administratören via ikonen för 32-bitars ODBC på Kontrollpanelen i Windows. Anslutningsinformationen uppdateras därmed. När du lägger till datakällor uppdateras registret via ODBC-administratören.

Så här lägger du till en datakälla för Windows

1	Öppna ODBC-administratören genom att dubbelklicka på ikonen ODBC-datakällor på Kontrollpanelen i Windows.

2	Klicka på Lägga till i dialogrutan ODBC - Administrera datakälla. Dialogrutan Skapa ny datakälla visas.

3	Välj en ODBC-drivrutin och klicka sedan på Slutför. Dialogrutan Installation av Microsoft ODBC för Oracle visas.

4	I rutan Namn på datakälla skriver du namnet på den databas som du vill ansluta. Du kan ange ett valfritt namn.

5	I rutan Beskrivning kan du ange en beskrivning av den drivrutin som datakällan ansluter till. Fältet är inte obligatoriskt. Du kan ange ett valfritt namn.

6	I rutan Användarnamn skriver du användarnamnet för databasen. Användarnamnet är databasens användar-ID.

7	I rutan Server skriver du anslutningssträngen för Oracle Server. Anslutningssträngen identifierar den databasmotor som du vill ansluta till.

8	Klicka på OK när du vill lägga till den här datakällan.

Obs! Dialogrutan Datakällor visas och ODBC-administratören uppdaterar registerinformationen. Användarnamnet och anslutningssträngen som du har angett blir anslutningens standardvärden. När du ansluter till datakällan via en dialogruta eller en anslutningssträng visas dessa värden som standardvärden för anslutningen.

9	Du kan klicka på Alternativ om du vill ange ytterligare specifikationer för Oracle ODBC.

Konvertering

Klicka på Välj när du vill välja en datakonverterare. Standardinställningen är Ingen konverterare.

Prestanda

Inkludera REMARKS i katalogfunktioner anger om drivrutinen returnerar Remarks-kolumner för resultatuppsättningen SQL-kolumner. ODBC-drivrutinen ger en snabbare anslutning om detta värde inte anges.

Inkludera SYNONYMS i SQL-kolumner anger om drivrutinen returnerar kolumninformation.

Anpassning

Använd ODBC-standard för veckodag anger om resultatuppsättningen ska följa det specifika ODBC-formatet för veckodag (söndag = 1; lördag = 7).

Klicka på Lägg till om du vill lägga till ytterligare en datakälla. Klicka på Stäng när du vill avsluta.

Så här ändrar du en datakälla för Windows

1	Öppna ODBC-administratören. Dialogrutan Datakällor visas.

2	I dialogrutan Datakällor väljer du den Oracle-datakälla som du vill ändra och klickar sedan på Installera. Dialogrutan Installation av Microsoft ODBC för Oracle visas.

3	Ändra lämpliga fält och klicka sedan på OK.

När du har avslutat redigeringen i dialogrutan uppdateras informationen i Windows-registret av ODBC-administratören.


Konfigurera ODBC-drivrutinen för Oracle

Du kan reglera Oracle-drivrutinens prestanda om du har kännedom om datamiljön och anger korrekta parametrar för datakällans anslutning i dialogrutan ODBC - Administrera datakälla eller i anslutningssträngar. På dialogrutans flikar som beskrivs nedan kan du styra anslutningen till en datakälla via dialogrutan eller via anslutningssträngar:

•	Fliken Användar-DSN Visar en lista över namn på lokala datakällor.

•	Fliken System-DSN I denna dialogruta kan du lägga till eller ta bort en systemdatakälla. Alla användare som använder den lokala datorn har tillgång till systemdatakällor.

•	Fliken Fil-DSN I denna dialogruta kan du lägga till eller ta bort en fildatakälla från den lokala datorn. Alla användare som har samma drivrutin installerad kan dela på fildatakällor.

•	Fliken ODBC-drivrutiner Visar en lista över alla ODBC-drivrutiner som har installerats.

•	Fliken Spårning I denna dialogruta kan du ange hur Drivrutinshanteraren för ODBC spårar anrop till ODBC-funktioner. Du kan konfigurera spårningen för varje enskilt ODBC-program som har installerats.

•	Fliken Anslutningspoolning I denna dialogruta kan du välja anslutningsalternativ för varje enskild drivrutin som har installerats.

•	Fliken Om Visar en lista över filer till de ODBC-komponenter som har installerats.

När du har lagt till en datakälla kan du använda dialogrutan ODBC - Administrera datakälla för att konfigurera åtkomsten till datakällan. Välj en datakälla och klicka sedan på lämplig flik för att redigera eller granska information.

Standardgränsen (50) för antalet uttryckshandtag anges av servern.


Ansluta till en datakälla

Ett ODBC-program kan skicka anslutningsinformation på flera olika sätt. I vissa program måste användaren ange anslutningsinformation, i andra en anslutningssträng. Hur du ansluter till en datakälla avgörs av vilken anslutningsmetod som används av ODBC-programmet.

Ett vanligt sätt att ansluta till en datakälla är via dialogrutan Datakälla. Om så är fallet i det aktuella ODBC-programmet visas dialogrutan och användaren uppmanas ange lämplig anslutningsinformation.

Du kan även ansluta till en datakälla med hjälp av en anslutningssträng.

Så här ansluter du till en datakälla via en dialogruta

1	Välj en Oracle-datakälla i dialogrutan Datakälla och klicka sedan på OK. Dialogrutan Anslut visas.

2	Fyll i nödvändig information i dialogrutan Anslut och klicka sedan på OK.

När anslutningsinformationen har bekräftats kan programmet använda ODBC-drivrutinen för att få tillgång till informationen i datakällan.


Attribut för anslutningssträng

I vissa program använder du en anslutningssträng i stället för en dialogruta för att ansluta till en datakälla. Anslutningssträngen består av attribut som anger hur drivrutinen ansluter till datakällan. Varje attribut anger en viss typ av information som måste finnas till hands innan anslutningen görs. Olika drivrutiner kan ha olika attributuppsättningar. Anslutningssträngen har dock alltid formatet nedan:

"DSN=datakällans namn[;SERVER=värde] [;PWD=värde] [;UID=värde] [;<Attribut>=<värde>]"

Obs! Microsofts ODBC-drivrutin för Oracle innehåller stöd för det något avvikande version 1-formatet för anslutningssträngar.

Du måste ange datakällans namn om du inte anger attributen UID, PWD, SERVER (eller CONNECTSTRING) eller DRIVER. Övriga attribut är dock inte obligatoriska. Om du inte anger något attribut används det attribut som du angav på fliken DSN i dialogrutan ODBC - Administrera datakälla som standard. Tänk på att attributvärdet kan vara skiftlägeskänsligt.

En anslutningssträng har följande attribut:

Attribut	Beskrivning	Standardvärde
DSN	Datakällans namn. Namnet finns i listan på fliken ODBC-drivrutiner i dialogrutan ODBC - Administrera datakälla.	""
PWD	Lösenordet för den Oracle-server som du vill få tillgång till.	""
SERVER	Anslutningssträngen för den Oracle-server som du vill få tillgång till.	""
UID	Oracle-serverns användarnamn. I vissa system kan detta attribut vara obligatoriskt. Av säkerhetsskäl kan attributet vara obligatoriskt för vissa databaser och tabeller. Skriv "/" om du vill använda Oracles operativsystemsverifiering.	""
BUFFERSIZE	Optimal buffertstorlek när kolumner hämtas. Drivrutinen optimerar hämtningen så att det varje gång returneras tillräckligt många rader från Oracle-servern för att fylla en buffert av denna storlek. Högre värden ger bättre prestanda när du hämtar stora mängder data.	65535
SYNONYMCOLUMNS	När detta värde är sant (1), returneras kolumninformation med API-anropet SQLColumn( ). I annat fall returneras endast kolumner för tabeller och vyer med anropet SQLColumn( ). Svarstiderna kortas om detta värde inte anges.	1
REMARKS	När detta värde är sant (1) returneras Remarks-kolumner för resultatuppsättningen SQL-kolumner. Svarstiderna kortas om detta värde inte anges.	0
StdDayOfWeek	ODBC-standard för skalärfunktionen DAYOFWEEK (veckodag). Detta attribut är som standard aktiverat men användare kan ändra inställningen till lokal standard för att bättre kunna använda den information som returneras.	1
En anslutningsträng som ansluter till datakällan (DSN, data source name) Employees på Oracle-servern mickey.world och Oracle-användaren (UID, user ID) cindy ser ut så här:

"DSN=Employees;UID=cindy;PWD=secret;SERVER=mickey.world"

En anslutningssträng som ansluter till datakällan Payroll via operativsystemsverifiering och Oracle-servern moola ser ut så här:

"DSN=Payroll;UID=/;PWD=;SERVER=moola"


Anpassningsnivåer för ODBC

Det finns två typer av anpassningsstandarder för drivrutiner i ODBC, API och SQL. API refererar till de funktioner som drivrutinen stöder och SQL till den SQL-syntax som drivrutinen stöder. Båda dessa standarder är uppbyggda i nivåer.

Anpassningsnivåer för API

ODBC-drivrutinen stöder alla API-funktioner på grundnivå och API-funktioner på nivå 1. Drivrutinen stöder även följande API-funktioner på nivå 2:

•	SQLBrowseConnect( )

•	SQLDataSources( )

•	SQLDescribeParam( )

•	SQLExtendedFetch( )

•	SQLForeignKeys( )

•	SQLMoreResults( )

•	SQLNativeSql( )

•	SQLNumParams( )

•	SQLPrimaryKeys( )

•	SQLProcedureColumns( )

•	SQLProcedures( )

•	SQLSetPos( )

•	SQLSetScrollOptions( )

Alternativ som drivrutinen stöder

Drivrutinen stöder följande alternativ för nivå 1-funktionerna SQLGetConnectOption( ) och SQLSetConnectOption( ):

•	SQL_ACCESS_MODE (endast SQLGetConnectOption( ))

•	SQL_AUTOCOMMIT

•	SQL_ODBC_CURSORS

•	SQL_OPT_TRACEFILE

•	SQL_OPT_TRACE

•	SQL_TRANSLATE_DLL

•	SQL_TRANSLATE_OPTION

•	SQL_TXN_ISOLATION

Drivrutinen stöder följande alternativ för nivå 1-funktionerna SQLGetStmtOption( ) och SQLSetStmtOption( ):

•	SQL_BIND_TYPE

•	SQL_CONCURRENCY

•	SQL_CURSOR_TYPE

•	SQL_KEYSET_SIZE

•	SQL_MAX_ROW

•	SQL_ROWSET_SIZE


Anpassningsnivåer för SQL

ODBC-drivrutinen innehåller stöd för syntax för minimi-SQL och syntax för grund-SQL samt följande ODBC-filtillägg i SQL:

•	Datum, tid och tidsstämpeldata

•	Vänster och höger yttre koppling

•	Numeriska funktioner:

abs	log	round	tan
ceiling	log10	second	truncate
cos	mod	sign
exp	pi	sin
floor	power	sqrt
•	Datumfunktioner:

curdate	dayofweek	monthname	second
curtime	dayofyear	minute	week
dayname	hour	now	year
dayofmonth	month	quarter
•	Strängfunktioner:

ascii	left	right	ucase
char	length	rtrim
concat	ltrim	soundex
lcase	replace	substring
•	Typkonverteringsfunktion:

convert

•	Systemfunktioner:

ifnull

user


Mappa datatyper

Oracle Server innehåller stöd för en viss uppsättning datatyper. ODBC-drivrutinen mappar dessa datatyper mot lämpliga SQL-datatyper för ODBC. I tabellen nedan visas datatyper i Oracle 7.3 Server och deras motsvarigheter i ODBC SQL.

Datatyp i Oracle Server	Datatyp i ODBC SQL
CHAR	SQL_CHAR
DATE	SQL_TIMESTAMP
FLOAT	SQL_DOUBLE
INTEGER	SQL_DECIMAL
LONG	SQL_LONGVARCHAR
LONG RAW	SQL_LONGVARBINARY
NUMBER	SQL_DECIMAL
RAW	SQL_VARBINARY
VARCHAR2	SQL_VARCHAR
Obs! Det finns ingen datatyp i ODBC SQL som motsvarar Oracle-datatypen MLSLABEL. Skalärvärden returneras i den lokala kodsidans format.

I Oracle 8 har den maximala storleken för en VARCHAR-kolumn utökats från 2 000 till 4 000 byte. I programvaran Oracle 7.3.x för klienter kan du inte binda parametervärden som är större än 2 000 byte. Om du skapar en tabell med en VARCHAR-kolumn som är större än 2 000 byte kan du inte infoga, uppdatera eller radera data eller köra frågor i denna med hjälp av parametrar som överskrider klientprogrammets gräns på 2 000 byte. Både ODBC-drivrutinen för Oracle och OLE DB Provider för Oracle infogar, uppdaterar, raderar och ställer frågor med hjälp av parametrar och kommer att rapportera felet ORA-01026 om gränsen överskrids. Data som inte överskrider gränsen accepteras. Om du vill undvika denna begränsning måste du uppgradera programvaran för klienter till Oracle 8 (8.0.4.1.1c eller senare).


Använda Microsoft Transaction Server

Du kan använda en Oracle-databas i transaktionskomponenter i Microsoft Transaction Server (MTS) under Microsoft Windows NT och Microsoft Windows 95/98. För att göra detta möjligt måste systemadministratören skapa en vy med namnet V$XATRANS$ och du måste köra ett Oracle-skript för att skapa detta skript. Mer information finns i hjälpen till Microsoft Transaction Server och i Oracle-dokumentationen.


Använda Microsoft Internet Information Server

Om du har svårighet att ansluta datakällan från ett skript i Internet Information Server (IIS) (gäller framför allt vid felet ORA-12641) lägger du till följande rad i filen Sqlnet.ora:

SQLNET.AUTHENTICATION_SERVICES = (none)

Därigenom inaktiveras den krypterade nätverkstrafiken och anonyma användare verifieras.


Använda operativsystemsverifiering

Operativsystemsverifiering i Oracle innebär att behörigheten till databaskonton kontrolleras av det underliggande operativsystemet. Användare behöver inte ange något lösenord vid inloggning.

Om du vill utnyttja denna verifiering skriver du "/" som användar-ID och anger inget lösenord när du använder någon av följande API:er vid anslutningen: SQLBrowseConnect, SQLConnect eller SQLDriverConnect.


Begränsningar vid användning av Keyset-drivna markörer

Du måste kunna hämta en enskild ROWID-kolumn för den tabell som frågan gäller. Du kan inte använda en Keyset-driven markör på kopplingar, frågor eller uttryck som innehåller instruktionerna DISTINCT, GROUP BY, UNION, INTERSECT eller MINUS.


Returnera matrisparametrar från lagrade procedurer (Stored Procedures)

I Oracle 7.3 kan du endast få tillgång till en PL/SQL-posttyp från ett PL/SQL-program. Om en förprogrammerad procedur eller funktion (paket) innehåller ett formellt argument som har definierats som en PL/SQL-posttyp kan du inte binda detta formella argument som en parameter. Använd PL/SQL TABLE i Microsoft ODBC-drivrutinen för Oracle när du vill anropa matrisparametrar från procedurer med korrekt undantagssekvens.

Använd följande syntax när du vill anropa proceduren:

{call  <namn>.<procedur-eller-funktion>;
(..., {resultset <max-poster-begärda> ,<formell-matris-param_1>,;
 <formell-matris-param_2>,...,<formell-matris-param_n> }, ... ) }

Obs!

•	Parametern <max-poster-begärda> måste vara större än eller lika med det antal rader som finns i resultatuppsättningen. I annat fall returneras ett fel från Oracle som drivrutinen vidarebefordrar till användaren.

•	Du kan inte använda PL/SQL-poster som matrisparametrar. Varje matrisparameter kan endast representera en kolumn i en databastabell.

I följande exempel definieras ett paket som innehåller två procedurer vilka returnerar olika resultatuppsättningar, och sedan två sätt att returnera resultatuppsättningar från paketet.

Definiera paketet:

CREATE OR REPLACE PACKAGE SimplePackage AS

TYPE t_id is TABLE of  NUMBER(5)

    INDEX BY BINARY_INTEGER;

TYPE t_Course is TABLE of VARCHAR2(10)

    INDEX BY BINARY_INTEGER;

TYPE t_Dept is TABLE of VARCHAR2(5)

    INDEX BY BINARY_INTEGER;

PROCEDURE proc1

(

o_id 	OUT 	t_id,

ao_course 	OUT 	t_Course,

ao_dept	OUT 	t_Dept

);

TYPE t_pk1Type1 IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;

TYPE t_pk1Type2 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;

PROCEDURE proc2

(

i_Arg1	IN 	NUMBER,

ao_Arg2	OUT	t_pk1Type1,

ao_Arg3	OUT	t_pk1Type2

);

END SimplePackage;

CREATE OR REPLACE PACKAGE BODY SimplePackage AS

    PROCEDURE  proc1 ( o_id OUT t_id,

    ao_course OUT t_Course, ao_dept OUT t_Dept   ) AS

    BEGIN

          o_id(1):= 200;

          ao_course(1) :=  'M101';

          ao_dept(1) :=  'EEE' ;

          o_id(2) := 201;

          ao_course(2) :=  'PHY320';

          ao_dept(2) :=  'ECE' ;

     END proc1;

PROCEDURE proc2

(

i_Arg1	IN 	NUMBER,

ao_Arg2	OUT	t_pk1Type1,

ao_Arg3	OUT	t_pk1Type2

)

AS

i	NUMBER;

BEGIN

FOR i IN 1 .. i_Arg1 LOOP

ao_Arg2(i) := 'Row Number ' || to_char(i);

END LOOP;

FOR i IN 1 .. i_Arg1 LOOP

ao_Arg3(i) := i;

END LOOP;

END proc2;

END SimplePackage;

Så här anropar du proceduren PROC1 när du vill

1	Returnera alla kolumner i en enda resultatuppsättning:

{ call SimplePackage.Proc1( {resultset  3, o_id , ao_course, ao_dept  } ) }

2	Returnera varje kolumn som en enskild resultatuppsättning:

{call SimplePackage.Proc1( {resultset 3, o_id},  {resultset 3, ao_course}, {resultset 3, ao_dept} ) }

Tre resultatuppsättningar returneras, en för varje kolumn.

Så här anropar du proceduren PROC2 när du vill

1	Returnera alla kolumner i en enda resultatuppsättning:

{call SimplePackage.Proc2( 5 , {resultset  5, ao_Arg2, ao_Arg3} ) }

2	Returnera varje kolumn som en enskild resultatuppsättning:

{call SimplePackage.Proc2( 5 , {resultset 5, ao_Arg2}, {resultset 5, ao_Arg3} ) }

Kontrollera att programmen hämtar alla resultatuppsättningar med hjälp av API-funktionen SQLMoreResults. Mer information finns i ODBC Programmer's Reference.

Obs! I ODBC-drivrutinen för Oracle version 2.0 kan du inte använda Oracle-funktioner som returnerar PL/SQL-matriser när du vill returnera resultatuppsättningar.


Kommentarer om API-funktioner

Microsoft ODBC-drivrutin för Oracle stöder API-funktioner på grundnivå, nivå 1 och nivå 2. En lista över dessa funktioner finns i avsnittet Anpassningsnivåer för ODBC.

•	Grundnivå Gränssnittet (CLI) anpassas och ger användaren tillgång till de funktioner som anges i specifikationen ISO CLI samt de obligatoriska funktioner som anges i specifikationen X/Open CLI.

•	Nivå 1 Denna nivå ger förutom alla grundnivåns funktioner även tillgång till ytterligare funktioner, t ex transaktioner.

•	Nivå 2 Denna nivå ger förutom alla funktioner på nivå 1 även tillgång till ytterligare funktioner, t ex bokmärken, dynamiska parametrar och asynkron körning av ODBC-funktioner.


Kommentarer om trådhantering i API-funktioner

Microsoft ODBC-drivrutin för Oracle är trådsäker, men Oracle tillåter inte flera aktiva uttryck samtidigt i en enskild anslutning. Denna restriktion upprätthålls av drivrutinen. Det innebär att vilken tråd som helst i ett flertrådat program när som helst kan anropa en Oracle ODBC-drivrutin, men drivrutinen blockerar övriga trådar i samma anslutning tills den ursprungliga tråden har lämnat drivrutinen.

Drivrutinen blockerar dock inte två uttryck i olika anslutningar. Om det bara finns en anslutning men två uttryck kan blockering inträffa.


API-funktioner grundnivå
API-funktioner på grundnivå

Funktionerna på denna nivå utgör den lägsta graden av gränssnittsanpassning för ODBC-drivrutiner.

API-funktion	Kommentarer
SQLAllocConnect	Tilldelar minne till ett anslutningshandtag, hdbc, inom den miljö som har definierats av henv. Drivrutinshanteraren bearbetar anropet och anropar drivrutinens SQLAllocConnect-funktion när SQLConnect, SQLBrowseConnect eller SQLDriverConnect anropas.
SQLAllocEnv	Visar en dialogruta som innehåller systemkraven för klientprogramvaran Oracle. Returnerar därefter SQL_NULL_HANDLE. Om klientprogramvaran inte har installerats tilldelas i stället minne till ett miljöhandtag, henv, och anropsgränssnittet för ODBC initieras för användning av ett program.
SQLAllocStmt	Tilldelar minne till ett uttryckshandtag och associerar uttryckshandtaget till den anslutning som anges av hdbc. Drivrutinshanteraren vidarebefordrar anropet till drivrutinen som tilldelar minne till hstmt-strukturen.
SQLBindCol	Skapar lagringsutrymme för en resultatkolumn och anger resultattyp.
SQLCancel	Avbryter bearbetningen av ett uttryckshandtag, hstmt. I vissa fall kan du inte avbryta ett uttryck under körning i Oracle. Det innebär att ett uttryck körs tills Oracle avslutar bearbetningen. Resultaten annulleras sedan av ODBC-drivrutinen.
SQLColAttributes	Returnerar en beskrivning av en kolumn i en resultatuppsättning. Beskrivningen returneras som en teckensträng, ett 32-bitarsvärde eller ett heltal (integer).
SQLConnect	Ansluter till en datakälla. Om du vill använda operativsystemsverifiering anger du "/" för parametern szUID och "" för parametern szAuthStr.
SQLDescribeCol	Returnerar namn, typ, precision, skala och möjligheten att använda Null-värden för den angivna resultatkolumnen. Obs! SQLDescribeCol rapporterar beräknade kolumner som SQL_VARCHAR.
SQLDisconnect	Bryter anslutningen. Om anslutningspoolning har aktiverats i en delad miljö och ett program anropar SQLDisconnect I en anslutning i denna miljö returneras anslutningen till anslutningspoolningen. Den är därmed fortfarande tillgänglig för andra komponenter i den delade miljön.
SQLError	Returnerar information eller status om det senaste felet som har uppstått. Drivrutinen upprättar en lista över fel som kan returneras för argumenten hstmt, hdbc och henv beroende på hur anropet till SQLError har gjorts. Felkön töms efter varje uttryck. Funktionen hämtar vanligtvis felmeddelanden från Oracle. Annars är den tom.
SQLExecDirect	Kör ett nytt SQL-uttryck. Drivrutinen använder aktuella värden för parametermarkörens variabler om uttrycket innehåller parametrar. Om ett namn på en tabell, en vy eller ett fält innehåller blanksteg måste namnet sättas inom svarta citationstecken. En tabell med namnet Min tabell och ett fält med namnet Mitt fält i databasen måste t ex skrivas så här: SELECT "Min tabell". "Mitt fält1",; "Min tabell"."Mitt fält2" FROM "Min tabell"
SQLExecute	Kör ett förberett SQL-uttryck (ett uttryck som redan har förberetts av SQLPrepare). Drivrutinen använder aktuella värden för parametermarkörens variabler om uttrycket innehåller parametrar.
SQLFetch	Hämtar en rad från en resultatuppsättning till de platser som angavs av det föregående anropet till SQLBindCol. Förbereder drivrutinen för ett anrop till SQLGetData för obundna kolumner.
SQLFreeConnect	Släpper ett anslutningshandtag och frigör det minne som har tilldelats till detta handtag.
SQLFreeEnv	Stänger ODBC-drivrutinen och frigör det minne som har associerats till drivrutinen.
SQLFreeStmt	Stoppar en körning som har associerats till ett specifikt hstmt, stänger alla öppna markörer som har associerats till hstmt, annullerar väntande resultat och frigör alla resurser som har associerats till uttryckshandtaget.
SQLGetCursorName	Returnerar namnet på den markör som har associerats till ett angivet hstmt.
SQLNumResultCols	Returnerar antalet kolumner i en resultatuppsättningsmarkör.
SQLPrepare	Förbereder ett SQL-uttryck genom att planlägga hur uttryckets ska optimeras och köras. SQL-uttrycket kompileras för körning via SQLExecDirect. Om ett namn på en tabell, en vy eller ett fält innehåller blanksteg måste det sättas inom svarta citationstecken. En tabell med namnet Min tabell och ett fält med namnet Mitt fält i databasen måste t ex skrivas så här: SELECT "Min tabell"."Mitt fält" FROM "Min tabell" Information om hur du använder resultatuppsättningar med matriser som formella parametrar finns i Returnera matrisparametrar från lagrade procedurer (Stored Procedures).
SQLRowCount	Du har ingen möjlighet att fastställa antalet rader i en resultatuppsättning i Oracle innan du har hämtat den sista raden. Därför returneras värdet -1.
SQLSetCursorName	Associerar namnet på en markör till ett aktivt uttryckshandtag, hstmt.
SQLSetParam	Har ersatts av SQLBindParameter i ODBC 2.x.
SQLTransact	Begär en bekräftelse- eller återställoperation av alla aktiva operationer på alla uttryckshandtag (hstmts) som har associerats till en anslutning, eller för alla anslutningar som har associerats till miljöhandtaget, henv. Om en bekräftelse misslyckas i manuellt läge förblir transaktionen aktiv. Du kan välja att återställa transaktionen eller att försöka utföra bekräftelseoperationen igen. Om en bekräftelseoperation misslyckas i automatiskt överföringsläge, återställs överföringen automatiskt. Överföringen kan inte inaktiveras.


API-funktioner nivå 1
API-funktioner på nivå 1

Denna anpassningsnivå omfattar alla funktioner på grundnivån plus ytterligare funktioner, t ex stöd för överföring.

API-funktion	Kommentarer
SQLColumns	Skapar en resultatuppsättning för en tabell som utgör kolumnlistan för en eller flera angivna tabeller. Om du begär kolumner för en PUBLIC-synonym måste du ha aktiverat anslutningsattributet SYNONYMCOLUMNS samt angett en tom sträng för argumentet szTableOwner. När kolumner returneras för PUBLIC-synonymer skapar drivrutinen en tom sträng i kolumnen TABLE NAME Resultatuppsättningen innehåller ytterligare en kolumn, ORDINAL POSITION, i slutet av varje rad. Där anges kolumnens placering i tabellen med ett ordningstal.
SQLDriverConnect	Ansluter till en befintlig datakälla. Mer information finns i avsnittet Attribut för anslutningssträng.
SQLGetConnectOption	Returnerar den aktuella inställningen för ett anslutnings-alternativ. Denna funktion stöds delvis. Drivrutinen stöder alla värden för argumentet fOption men inte vissa vParam-värden för fOption-argumentet SQL_TXN_ISOLATION. Mer information finns i avsnittet Anslutningsalternativ.
SQLGetData	Hämtar värdet för ett enskilt fält i den aktuella posten i angiven resultatuppsättning.
SQLGetFunctions	Returnerar TRUE för alla funktioner som stöds. Implementeras av drivrutinshanteraren.
SQLGetInfo	Returnerar information, till exempel SQLHDBC, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT och SQLSMALLINT * om ODBC-drivrutinen och den datakälla som har associerats till ett anslutningshandtag, hdbc.
SQLGetStmtOption	Returnerar den aktuella inställningen för ett uttrycksalternativ. Mer information finns i avsnittet Uttrycksalternativ.
SQLGetTypeInfo	Returnerar information om vilka datatyper en datakälla innehåller stöd för. Drivrutinen returnerar informationen i en resultatuppsättning i SQL.
SQLParamData	Används tillsammans med SQLPutData för att ange parameterdata vid körning av ett uttryck.
SQLPutData	Möjliggör för ett program att skicka data till en parameter eller en kolumn via drivrutinen medan ett uttryck körs.
SQLSetConnectOption	Ger tillgång till alternativ som styr anslutningsaspekter. Funktionen har stöds delvis: Drivrutinen stöder alla värden för argumentet fOption men inte vissa vParam-värden för fOption-argumentet SQL_TXN_ISOLATION. Mer information finns i avsnittet Anslutningsalternativ.
SQLSetStmtOption	Anger alternativ som är relaterade till ett uttryckshandtag, hstmt. Mer information finns i avsnittet Uttrycksalternativ.
SQLSpecialColumns	Hämtar den optimala uppsättning kolumner som definierar en rad i tabellen.
SQLStatistics	Hämtar en lista över statistik om en enskild tabell samt index eller kodnamn som har associerats till tabellen. Drivrutinen returnerar informationen som en resultatuppsättning.
SQLTables	Returnerar en lista över namn på tabeller som har specificeras av parametern i argumentet SQLTables. Om ingen parameter har angetts returneras de tabellnamn som är lagrade i den aktuella datakällan. Drivrutinen returnerar informationen som en resultatuppsättning.  Anrop av numreringstyp för fjärrvyer eller lokala vyer med parametrar resulterar inte i någon resultatuppsättningspost. Ett anrop till SQLTables med en unik specificerare för tabellnamn kan dock hitta en matchning till en sådan vy med det aktuella namnet. API kan därigenom kontrollera eventuella namnkonflikter innan en ny tabell skapas. PUBLIC-synonymer returneras med TABLE_OWNER-värdet "". VIEW-objekt som ägs av SYS eller SYSTEM identifieras som SYSTEM VIEW.


API-funktioner nivå 2
API-funktioner på nivå 2

Denna nivå omfattar alla nivå 1-funktioner plus ytterligare funktioner som t ex stöd för bokmärken, dynamiska parametrar och asynkron körning av ODBC-funktioner.

API-funktion	Kommentarer
SQLBindParameter	Associerar en buffert till en parametermarkör i ett SQL-uttryck.
SQLBrowseConnect	Returnerar på varandra följande attributnivåer och attributvärden.
SQLDataSources	Listar namn på datakällor. Implementeras av drivrutinshanteraren.
SQLDescribeParam	Returnerar en beskrivning av en parametermarkör som har associerats till ett förberett SQL-uttryck. Analyserar uttrycket och returnerar en gissning av vad parametern är. Om parametertypen inte kan fastställas returneras SQL_VARCHAR med längden 2 000.
SQLDrivers	Implementeras av drivrutinshanteraren.
SQLExtendedFetch	Liknar SQLFetch men returnerar flera rader med hjälp av en matris för varje kolumn. Du kan bläddra framåt i resultatuppsättningen och även bakåt om markören definieras som statisk och inte enbart framåtriktad. För framåtriktade markörer med kolumnbindning av standardtyp hämtas kolumndata från datauppsättningar som är större än anslutningsattributet BUFFERSIZE direkt till en databuffert. Funktionen stöder inte bokmärken av variabel längd och inte heller hämtning av raduppsättningar med bokmärkesförskjutning (annan än 0).
SQLForeignKeys	Returnerar en lista över sekundärnycklar i en enda tabell, eller en lista över sekundärnycklar i andra tabeller som refererar till en enda tabell.
SQLMoreResults	Fastställer om det finns fler väntande resultat för ett uttryckshandtag, hstmt, som innehåller uttrycken SELECT, UPDATE, INSERT eller DELETE. Om så är fallet initieras bearbetningen av resultaten.  Oracle stöder flera resultatuppsättningar endast från lagrade procedurer (stored procedures), vid användning av {resultset… } undantagssekvenser.
SQLNativeSql	Mer information om användning av denna funktion finns i avsnittet Returnera matrisparametrar från lagrade procedurer (Stored Procedures).
SQLNumParams	Returnerar antalet parametrar i ett SQL-uttryck. Antalet parametrar bör vara lika stort som antalet frågetecken i det SQL-uttryck som har skickats till SQLPrepare.
SQLPrimaryKeys	Returnerar namnen på de kolumner som innehåller primärnycklar för en tabell.
SQLProcedureColumns	Returnerar en lista över in- och utdataparametrar, returvärdet, kolumnerna i resultatuppsättningen för en enskild procedur samt ytterligare två kolumner, OVERLOAD och ORDINAL_POSITION. OVERLOAD är OVERLOAD-kolumnen från tabellen ALL_ARGUMENTS i Oracle-vyn över datakataloger. ORDINAL_POSITION är SEQUENCE-kolumnen från tabellen ALL_ARGUMENTS i Oracle-vyn över datakataloger. För förprogrammerade procedurer har kolumnen PROCEDURE NAME formatet paketnamn.procedurnamn. Denna funktion returnerar inte procedurkolumner för en skapad synonym som refererar till en procedur eller en funktion.
SQLProcedures	Returnerar en lista över procedurer i datakällan. För förprogrammerade procedurer har kolumnen PROCEDURE NAME formatet paketnamn.procedurnamn. Du kan inte särskilja förprogrammerade procedurer från förprogrammerade funktioner i Oracle. Därför returnerar drivrutinen SQL_PT_UNKNOWN för kolumnen PROCEDURE_TYPE.
SQLSetPos	Anger markörens position i en raduppsättning. Du kan använda SQLSetPos med SQLGetData för att hämta rader från obundna kolumner när du har placerat markören på en specifik rad i raduppsättningen. När rader läggs till med hjälp av fOption SQL_ADD placeras de efter den sista raden i resultatuppsättningen.
SQLSetScrollOptions	Anger alternativ som styr markörer som har associerats till ett uttryckshandtag, hstmt. Mer information finns i avsnittet Markörtyp och samtidighetskombinationer.


Anslutningsalternativ

Med dessa alternativ kan du anpassa databasanslutningen i ett program.

Anslutningsalternativ	Kommentarer
SQL_AUTOCOMMIT	Om du väljer SQL_AUTOCOMMIT_OFF måste programmet uttryckligen bekräfta eller återställa överföringar med SQLTransact.
SQL_ODBC_CURSORS	Detta anslutningsattribut implementeras i drivrutinshanteraren.
SQL_OPT_TRACE	Detta anslutningsattribut implementeras i drivrutinshanteraren.
SQL_OPT_TRACEFILE	Detta anslutningsattribut implementeras i drivrutinshanteraren.
SQL_TRANSLATE_DLL	Returnerar felet: "Detta går inte med aktuell drivrutin."
SQL_TRANSLATE_OPTION	Ett 32-bitarsvärde som skickas till konverterings-DLL:en.
SQL_TXN_ISOLATION	Drivrutinen tillåter endast SQL_TXN_READ_COMMITTED. Följande vParams saknar stöd: SQL_TXN_READ_UNCOMMITTED SQL_TXN_REAPEATABLE_READ SQL_TXN_SERIALIZABLE
SQL_ATTR_ENLIST_IN_DTC	Med detta anslutningsattribut från ODBC 3.0 kan du använda Oracle ODBC-drivrutinen i distribuerad transaktion som koordineras av Microsoft Transaction Server. Transaktionen erhåller gränssnittspekaren pITransaction som vParam-argument.
SQL_ATTR_CONNECTION_DEAD	Med detta skrivskyddade anslutningsattribut från ODBC 3.5 kan du fastställa om anslutningen till Oracle-servern har misslyckats. Kan endast erhållas, inte anges.


Uttrycksalternativ

Med dessa alternativ kan du anpassa specifika uttryck som körs i ett program.

Uttrycksalternativ	Kommentarer
SQL_BIND_TYPE	Kan inte överskrida 2 147 483 647 byte eller tillgängligt minne.
SQL_CONCURRENCY	Tillåtna värden anges i avsnittet Markörtyp och samtidighetskombinationer.
SQL_CURSOR_TYPE	Drivrutinen tillåter inte SQL_CURSOR_DYNAMIC. Mer information finns i avsnittet SQLSetScrollOptions. Tillåtna värden anges i avsnittet Markörtyp och samtidighetskombinationer.
SQL_GET_BOOKMARK	Returnerar ett 32-bitarsheltal som bokmärke för aktuellt postnummer. Kan endast erhållas, inte anges.
SQL_KEYSET_SIZE	Du kan endast ange 0 för detta alternativ.
SQL_MAX_ROWS	Maximalt antal rader som returneras från en resultatuppsättning.
SQL_ROW_NUMBER	Anger den aktuella radens position i resultatuppsättningen med ett 32-bitarsheltal. Kan endast erhållas, inte anges.
SQL_ROWSET_SIZE	Kan inte vara större än 4 294 967 296 rader. Det måste dock finnas tillräckligt med virtuellt minne i datorn för att hantera frågan.
SQL_USE_BOOKMARKS	Stöder inställning av SQL_USE_BOOKMARKS till SQL_UB_ON och visar bokmärken med fast längd.


Markörtyp och samtidighetskombinationer

Markörtypen styr hur markören kan användas. Samtidighetskombinationer styr hur en resultatuppsättning kan uppdateras och låsas.

Markörtyp	Samtidighet (tillåtna värden)
SQL_CURSOR_FORWARD_ONLY	SQL_CONCUR_READ_ONLY
SQL_CURSOR_STATIC	SQL_CONCUR_READ_ONLY
SQL_CURSOR_KEYSET_DRIVEN*	SQL_CONCUR_READ_ONLY SQL_CONCUR_LOCK ** SQL_CONCUR_VALUES
Kommentarer

* Se avsnittet Begränsningar vid användning av Keyset-drivna markörer.

** SQL_CONCUR_LOCK stöds endast när anslutningsalternativet SQL_AUTOCOMMIT har värdet SQL_AUTOCOMMIT_OFF.


Felmeddelanden

När ett fel uppstår returnerar Microsofts ODBC-drivrutin för Oracle SQLSTATE (en ODBC-felkod) och ett felmeddelande. Drivrutinen erhåller denna information för såväl fel som har upptäckts av drivrutinen som fel som har returnerats av Oracle Server.

Meddelanden som returneras av Oracle ODBC-drivrutin

Om ett Oracle-meddelande är tillgängligt returneras det och föregås av koderna [Microsoft], [ODBC Driver for Oracle] och [Oracle]. I annat fall returneras meddelandet utan koden [Oracle] som i följande exempel:

Felmeddelande från Oracle:

[Microsoft][ODBC Driver for Oracle][Oracle]ORA-nnnnn meddelandetext

Felmeddelande från Oracle ODBC-drivrutin:

[Microsoft][ODBC Driver for Oracle]